package com.woniuxy01;

import java.util.*;

/**
 * @author 作者
 * @create 2025-07-30 10:53
 */
public class Test02 {
    public static void main(String[] args) {
        test10();
    }

    private static void test10() {
        List<String> list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println(list);
        //修改元素
        System.out.println(list.set(0, "aaa"));
        System.out.println(list);
    }

    private static void test09() {
        //        List<String> list = new ArrayList();
//        list.add("a");
//        list.add("b");
//        list.add("c");
//        System.out.println(list);
//        list.remove(2);
//        System.out.println(list);
//        list.remove("a");
//        System.out.println(list);

        List<Integer> list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        //下标
//        list.remove(1);
        Integer i = 1;
        list.remove(i);
        System.out.println(list);
        //add(double d1,double d2);
        //add(int d1,int d2);
        //  add(1,2)
    }

    private static void test08() {
        List<String> list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");

//        Iterator<String> iterator = list.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }

        //创建迭代器，指向第一元素之前
//        ListIterator<String> listIterator = list.listIterator();
//        while (listIterator.hasNext()) {
//            System.out.println(listIterator.next());
//        }
//
//        while (listIterator.hasPrevious()) {
//            System.out.println(listIterator.previous());
//        }

        for (int i = list.size() - 1; i >= 0; i--) {
            System.out.println(list.get(i));
        }
    }

    private static void test07() {
        List<String> list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        //集合遍历1--集合转数组
        Object[] array = list.toArray();
        //集合遍历2--迭代器
        //集合遍历3--增强for
        //集合遍历4--迭代器get(int index)
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

    private static void test06() {
        List<String> list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println(list);
        list.add(1, "d");
        System.out.println(list);
    }

    private static void test05() {
        Collection<String> list1 = new ArrayList<String>();
        list1.add("a");
        list1.add("b");
        list1.add("c");
        //获取当前集合的迭代器对象,使用迭代器遍历集合
        Iterator<String> iterator = list1.iterator();
        //判断是否还有下一个元素
        while (iterator.hasNext()) {
            //获取下一个元素
            String str = iterator.next();
            System.out.println(str);
//            list1.add("xxx");
        }
        //增强for的底层就是迭代器
        for (String str : list1) {
            System.out.println(str);
            str = "xxxx";
            list1.add("xxx");
        }
        System.out.println(list1);
    }

    private static void test04() {
        Collection<String> list1 = new ArrayList<String>();
        list1.add("a");
        list1.add("b");
        list1.add("c");
        Collection<String> list2 = new ArrayList<String>();
        list2.add("x");
        list2.add("y");
        list2.add("z");
        System.out.println(list1.removeAll(list2));
        System.out.println(list1);
    }

    private static void test03() {
        //定义泛型集合，集合中只能存储字符串   int[] a={1,2,,3};
        //泛型擦除：编译后的class文件还是Object,编译器会检查，兼容老版本（泛型JDK1.5新增的）
        Collection<String> list = new ArrayList<String>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        for (String str : list) {
            System.out.println(str);
        }
    }

    private static void test02() {
        //只能使用Collection定义的方法，不能使用List和ArrayList扩展的方法
        //非泛型集合，元素的类型定义成Object
        Collection list = new ArrayList();
        list.add(new Student("zs", 11));
        list.add("abc");
        list.add(1);
        list.add(1.1);
        list.add(false);
        System.out.println(list);
        //遍历集合:集合转成数组，转换成数组遍历
        Object[] array = list.toArray();
        //增强for
        //for(数据类型 遍历 : 数组或者集合)
        for (Object o : list) {
            ((Student) o).study();
        }
    }

    private static void test01() {
        Collection list = new ArrayList();
        list.add("abc");
        //int自动装箱,集合中都是引用数据类型
        list.add(1);
        list.add(1.1);
        for (Object o : list) {
            System.out.println(o instanceof Integer);
        }
    }


}
